home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / sbin / grub-set-default < prev    next >
Text File  |  2009-10-29  |  2KB  |  100 lines

  1. #! /bin/sh
  2. #
  3. # Set a default boot entry for GRUB.
  4. # Copyright (C) 2004,2009  Free Software Foundation, Inc.
  5. #
  6. # GRUB is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # GRUB is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
  18.  
  19. # Initialize some variables.
  20. transform="s,x,x,"
  21.  
  22. prefix=/usr
  23. exec_prefix=${prefix}
  24. bindir=${exec_prefix}/bin
  25.  
  26. grub_editenv=${bindir}/`echo grub-editenv | sed ${transform}`
  27. rootdir=
  28.  
  29. # Usage: usage
  30. # Print the usage.
  31. usage () {
  32.     cat <<EOF
  33. Usage: $0 [OPTION] entry
  34. Set the default boot entry for GRUB.
  35.  
  36.   -h, --help              print this message and exit
  37.   -v, --version           print the version information and exit
  38.   --root-directory DIR    expect GRUB images under the directory DIR
  39.                           instead of the root directory
  40.  
  41. ENTRY is a number or a menu item title.
  42.  
  43. Report bugs to <bug-grub@gnu.org>.
  44. EOF
  45. }
  46.  
  47. # Check the arguments.
  48. for option in "$@"; do
  49.     case "$option" in
  50.     -h | --help)
  51.     usage
  52.     exit 0 ;;
  53.     -v | --version)
  54.     echo "grub-install (GNU GRUB ${PACKAGE_VERSION})"
  55.     exit 0 ;;
  56.     --root-directory=*)
  57.     rootdir=`echo "$option" | sed 's/--root-directory=//'` ;;
  58.     -*)
  59.     echo "Unrecognized option \`$option'" 1>&2
  60.     usage
  61.     exit 1
  62.     ;;
  63.     *)
  64.     if test "x$entry" != x; then
  65.         echo "More than one entry?" 1>&2
  66.         usage
  67.         exit 1
  68.     fi
  69.     entry="${option}" ;;
  70.     esac
  71. done
  72.  
  73. if test "x$entry" = x; then
  74.     echo "entry not specified." 1>&2
  75.     usage
  76.     exit 1
  77. fi
  78.  
  79. # Initialize these directories here, since ROOTDIR was initialized.
  80. case "$host_os" in
  81. netbsd* | openbsd*)
  82.     # Because /boot is used for the boot block in NetBSD and OpenBSD, use /grub
  83.     # instead of /boot/grub.
  84.     grub_prefix=`echo /grub | sed ${transform}`
  85.     bootdir=${rootdir}
  86.     ;;
  87. *)
  88.     # Use /boot/grub by default.
  89.     bootdir=${rootdir}/boot
  90.     ;;
  91. esac
  92.  
  93. grubdir=${bootdir}/`echo grub | sed ${transform}`
  94.  
  95. $grub_editenv ${grubdir}/grubenv unset prev_saved_entry
  96. $grub_editenv ${grubdir}/grubenv set saved_entry="$entry"
  97.  
  98. # Bye.
  99. exit 0
  100.